﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DAL.DataSourceInterface;
using DAL.Entities;
using DAL.DataSourceImplementation.DataSourceDB;

namespace DAL.DataSourceImplementation
{
    public class CiudadDAO : ICiudadDAO
    {
        ///Variable para almacenar el nombre de la conexión
        private static string connName;

        /// Constructor que recibe la llave de conexión desde el data access
        /// <param name="_connName">Nombre de la llave de conexion</param>
        public CiudadDAO(string _connName)
        {
            connName = _connName;
        }

        ///Métodos
        public List<Ciudad> GetAll()
        {
            List<Ciudad> ciudadList = new List<Ciudad>();

            //Se abre contexto de la BD
            using (PublicaTuPropiedadDB db = new PublicaTuPropiedadDB(connName))
            {
                ciudadList = db.Ciudad.Where(c => c.BCIU_ESTADO == true).ToList();
            }
            return ciudadList;
        }

        public List<Ciudad> GetAllByIdCity(int pk_Ciudad)
        {
            List<Ciudad> ciudadList = new List<Ciudad>();

            //Se abre contexto de la BD
            using (PublicaTuPropiedadDB db = new PublicaTuPropiedadDB(connName))
            {
                ciudadList = db.Ciudad.Where(c => c.BCIU_ESTADO == true && c.ICIU_PK == pk_Ciudad).ToList();
            }
            return ciudadList;
        }

        public List<Ciudad> GetAllByIdRegion(int fk_Region)
        {
            List<Ciudad> ciudadList = new List<Ciudad>();

            //Se abre contexto de la BD
            using (PublicaTuPropiedadDB db = new PublicaTuPropiedadDB(connName))
            {
                ciudadList = db.Ciudad.Where(c => c.BCIU_ESTADO == true && c.IREG_FK == fk_Region).ToList();
            }
            return ciudadList;
        }
    }
}
